High-performance computing systems often include large numbers of servers interconnected by a network switch fabric that is responsible for moving packets among the servers. Each of these servers can run multiple virtual machines (VMs) and associated virtualized applications, and the network packet streams generated by these servers are typically directed to different resources that the VMs and associated applications need to access. Hot spots and associated network congestion frequently arise in such network switch fabrics depending on the traffic patterns of the packet streams and how the switch fabric is configured.
“Multicast packets” or “broadcast packets,” which are sent from a single source to multiple destinations, are a major contributor to such network congestion. (We refer to such packets as “multi-destination packets.”) Whenever a multi-destination packet is sent across a network switch fabric, traffic multiplication occurs. For example, a multi-destination packet entering a switch port is typically replicated to all or a subset of the output ports. This replication greatly reduces the amount of bandwidth that is available to transfer other packets through the switch fabric, thereby adversely affecting the performance of other packet streams.
Hence, what is needed is a technique for communicating multi-destination packets through a switch fabric without adversely affecting other packet streams.